package com.dgshanger.sanhxiaofeisc.mvp.contract;

import com.dgshanger.sanhxiaofeisc.entity.CheckPwdEntity;
import com.dgshanger.sanhxiaofeisc.entity.TransferAccountsEntity;
import com.dgshanger.sanhxiaofeisc.entity.UserEntity;
import com.xx.baseuilibrary.mvp.BaseMvpView;
import com.xx.baseutilslibrary.network.rx.RxHttpObserver;

/**
 * TransferAccountsContract
 * 沉迷学习不能自拔
 * Describe：
 * Created by 雷小星🍀 on 2018/5/3 15:51.
 */

public interface TransferAccountsContract {

    interface Model {
        /**
         * 加载数据
         */
        void loadData(RxHttpObserver<TransferAccountsEntity> httpObserver);

        /**
         * 加载用户数据
         *
         * @param user_mobile 手机号
         */
        void loadUser(String user_mobile, RxHttpObserver<UserEntity> httpObserver);

        /**
         * 转账
         */
        void transfer(String payee_user_mobile,
                      String wallet_money,
                      String integral_number,
                      String remark,
                      String user_pay_pwd,
                      RxHttpObserver<Object> httpObserver);

        void checkPayPwd(RxHttpObserver<CheckPwdEntity> httpObserver);
    }

    interface View extends BaseMvpView {

        String getPayeeUserMobile();

        String getWalletMoney();

        String getIntegralNumber();

        String getRemark();

        String getPayPwd();

        void setData(TransferAccountsEntity entity);

        /**
         * 设置手机号用户数据
         *
         */
        void setUserData(UserEntity userData);

        void onSettingPayPwd();

        void showPayPwdDialog();
    }

    interface Presenter {

        void loadData();

        void transfer();

        void checkPayPwd();

        /**
         * 加载指定用户手机号的数据
         *
         * @param user_mobile 用户手机号
         */
        void loadUser(String user_mobile);
    }
}
